home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 25 / Cream of the Crop 25.iso / utility / ffe101.zip / SOUND.SWG / 0029_MIDI.pas < prev    next >
Pascal/Delphi Source File  |  1997-03-02  |  9KB  |  172 lines

  1.                     MIDI 1.0 Specification:
  2.  
  3. Status       Data Byte(s)     Description
  4. D7----D0     D7----D0
  5. -------------------------------------------------------------------------
  6. Channel Voice Messages
  7. -------------------------------------------------------------------------
  8. 1000cccc     0nnnnnnn         Note Off event.
  9.              0vvvvvvv         This message is sent when a
  10.                               note is released (ended).
  11.                               (nnnnnnn) is the note number.
  12.                               (vvvvvvv) is the velocity.
  13.  
  14. 1001cccc     0nnnnnnn         Note On event.
  15.              0vvvvvvv         This message is sent when a
  16.                               note is depressed (start).
  17.                               (nnnnnnn) is the note number.
  18.                               (vvvvvvv) is the velocity.
  19.  
  20. 1010cccc     0nnnnnnn         Polyphonic Key Pressure (After-touch).
  21.              0vvvvvvv         This message is sent when the pressure
  22.                               (velocity) of a previously
  23.                               triggered note changes.
  24.                               (nnnnnnn) is the note number.
  25.                               (vvvvvvv) is the new velocity.
  26.  
  27. 1011cccc     0ccccccc         Control Change.
  28.              0vvvvvvv         This message is sent when a controller
  29.                               value changes.  Controllers include devices
  30.                               such as pedals and levers.
  31.                               Certain controller numbers are reserved
  32.                               for specific purposes. See Channel Mode Messages.
  33.                               (ccccccc) is the controller number.
  34.                               (vvvvvvv) is the new value.
  35.  
  36. 1100cccc     0ppppppp         Program Change.
  37.                               This message sent when the patch number changes.
  38.                               (ppppppp) is the new program number.
  39.  
  40. 1101nnnn     0ccccccc         Channel Pressure (After-touch).
  41.                               This message is sent when the channel pressure
  42.                               changes. Some velocity-sensing keyboards do not
  43.                               support polyphonic after-touch. Use this
  44.                               message to send the single greatest velocity
  45.                               (of all te current depressed keys).
  46.                               (ccccccc) is the channel number.
  47.  
  48. 1110nnnn     0lllllll         Pitch Wheel Change.
  49.              0mmmmmmm         This message is sent to indicate a change in the
  50.                               pitch wheel.  The pitch wheel is measured by a
  51.                               fourteen bit value. Center (no pitch change) is
  52.                               2000H.  Sensitivity is a function of the
  53.                               transmitter.
  54.                               (llllll) are the least significant 7 bits.
  55.                               (mmmmmm) are the most significant 7 bits.
  56. -------------------------------------------------------------------------
  57. Channel Mode Messages  (See also Control Change, above)
  58. -------------------------------------------------------------------------
  59. 1011nnnn     0ccccccc         Channel Mode Messages.
  60.              0vvvvvvv         This the same code as the Control
  61.                               Change (above), but implements Mode
  62.                               control by using reserved controller
  63.                               numbers.  The numbers are:
  64.  
  65.                               Local Control.
  66.                               When Local Control is Off, all devices
  67.                               on a given channel will respond only to
  68.                               data received over MIDI.  Played data, etc.
  69.                               will be ignored.  Local Control On
  70.                               restores the functions of the normal
  71.                               controllers.
  72.                               c = 122, v =   0: Local Control Off
  73.                               c = 122, v = 127: Local Control On
  74.  
  75.                               All Notes Off.
  76.                               When an All Notes Off is received,
  77.                               all oscillators will turn off.
  78.                               c = 123, v =   0: All Notes Off
  79.  
  80.                               (See text for description of actual
  81.                               mode commands.)
  82.                               c = 124, v =   0: Omni Mode Off
  83.                               c = 125, v =   0: Omni Mode On
  84.                               c = 126, v =   M: Mono Mode On (Poly Off)
  85.                               where M is the number of channels
  86.                               (Omni Off) or 0 (Omni On)
  87.                               c = 127, v =   0: Poly Mode On (Mono Off)
  88.                               (Note: These four messages also cause
  89.                               All Notes Off)
  90. .pa
  91. -------------------------------------------------------------------------
  92. System Common Messages
  93. -------------------------------------------------------------------------
  94. 11110000     0iiiiiii         System Exclusive.
  95.              0ddddddd         This message makes up for all that MIDI
  96.                 ..            doesn't support.  (iiiiiii) is a seven
  97.                 ..            bit Manufacturer's I.D. code.  If the
  98.              0ddddddd         synthesizer recognizes the I.D. code as
  99.              11110111         its own, it will listen to the rest of
  100.                               the message (ddddddd).  Otherwise, the
  101.                               message will be ignored.  System Exclusive
  102.                               is used to send bulk dumps such as patch
  103.                               parameters and other non-spec data.
  104.                               (Note: Real-Time messages ONLY may be
  105.                               interleaved with a System Exclusive.)
  106.  
  107. 11110001                      Undefined.
  108.  
  109. 11110010     0lllllll         Song Position Pointer.
  110.              0mmmmmmm         This is an internal 14 bit register that
  111.                               holds the number of MIDI beats (1 beat=
  112.                               six MIDI clocks) since the start of
  113.                               the song.  l is the LSB, m the MSB.
  114.  
  115. 11110011     0sssssss         Song Select.
  116.                               The Song Select specifies which sequence
  117.                               or song is to be played.
  118.  
  119. 11110100                      Undefined.
  120.  
  121. 11110101                      Undefined.
  122.  
  123. 11110110                      Tune Request.
  124.                               Upon receiving a Tune Request, all analog
  125.                               sythesizers should tune their oscillators.
  126.  
  127. 11110111                      End of Exclusive.
  128.                               Used to terminate a System Exclusive
  129.                               dump (see above).
  130. .pa
  131. -------------------------------------------------------------------------
  132. System Real-Time Messages
  133. -------------------------------------------------------------------------
  134. 11111000                      Timing Clock.
  135.                               Sent 24 times per quarter note when
  136.                               synchronization is required (see text).
  137.  
  138. 11111001                      Undefined.
  139.  
  140. 11111010                      Start.
  141.                               Start the current sequence playing.
  142.                               (This message will be followed with
  143.                               Timing Clocks).
  144.  
  145. 11111011                      Continue.
  146.                               Continue at the point the sequence was
  147.                               Stopped.
  148.  
  149. 11111100                      Stop.
  150.                               Stop the current sequence.
  151.  
  152. 11111101                      Undefined.
  153.  
  154. 11111110                      Active Sensing.
  155.                               Use of this message is optional.  When
  156.                               initially sent, the receiver will expect
  157.                               to receive another Active Sensing message
  158.                               each 300ms (max), or it will be assume
  159.                               that the connection has been terminated.
  160.                               At termination, the receiver will turn off
  161.                               all voices and return to normal (non-
  162.                               active sensing) operation.
  163.  
  164. 11111111                      Reset.
  165.                               Reset all receivers in the system to
  166.                               power-up status.  This should be used
  167.                               sparingly, preferably under manual
  168.                               control.  In particular, it should not
  169.                               be sent on power-up.
  170.  
  171.          -- Greg, lee@uhccux.uhcc.hawaii.edu
  172.